import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;

public class demo2 {
    public static void main(String[] args) {
        ArrayList<Integer> nums1=new ArrayList<>();
        nums1.add(1);
        nums1.add(2);
        nums1.add(3);
        ArrayList<Integer> nums2=new ArrayList<>();
        nums2.add(8);
        nums2.add(2);
        nums2.add(2);
        nums2.add(3);
        nums2.add(8);
        ArrayList<Integer> list=intersection(nums1,nums2);
        System.out.println(list);
    }
    public static ArrayList<Integer> intersection (ArrayList<Integer> nums1, ArrayList<Integer> nums2) throws IndexOutOfBoundsException  {
        HashSet<Integer> set1=new HashSet<>();
        int lenth1=nums1.size();
        for (int i = 0; i < nums1.size(); i++) {
            set1.add(nums1.get(i));
        }

        HashSet<Integer> set2=new HashSet<>();
        int lenth2=nums2.size();
        for (int i = 0; i < nums1.size(); i++) {
            set2.add(nums2.get(i));
        }

        Iterator<Integer> iterator= set1.iterator();
        Object[]  o=set2.toArray();

        boolean flag=false;
        while (iterator.hasNext()){
            int a=iterator.next();
            for (int i = 0; i < o.length; i++) {
                if (a==(int) o[i]){
                    flag=true;//说明找到一样的了=》检查下一个元素
                    break;
                }
            }

            if(flag==true){
                break;
            }
            iterator.remove();
        }
        ArrayList<Integer> list=new ArrayList<>(set1);
        return list;
    }
}
